// pages/home/index.js
const app = getApp()
const order = ['demo1', 'demo2', 'demo3']

Page({
  /** 设置缓存 */
  setItem(params) {
    let obj = {
      name: '',
      value: '',
      expires: "",
      startTime: new Date().getTime() //记录何时将值存入缓存，毫秒级
    }
    let options = {};
    //将obj和传进来的params合并
    Object.assign(options, obj, params);
    if (options.expires) {
      //如果options.expires设置了的话
      //以options.name为key，options为值放进去
      localStorage.setItem(options.name, JSON.stringify(options));
    } else {
      //如果options.expires没有设置，就判断一下value的类型
      let type = Object.prototype.toString.call(options.value);
      //如果value是对象或者数组对象的类型，就先用JSON.stringify转一下，再存进去
      if (Object.prototype.toString.call(options.value) == '[object Object]') {
        options.value = JSON.stringify(options.value);
      }
      if (Object.prototype.toString.call(options.value) == '[object Array]') {
        options.value = JSON.stringify(options.value);
      }
      localStorage.setItem(options.name, options.value);
    }
  },
  //拿到缓存
  getItem(name) {
    let item = localStorage.getItem(name);
    //先将拿到的试着进行json转为对象的形式
    try {
      item = JSON.parse(item);
    } catch (error) {
      //如果不行就不是json的字符串，就直接返回
      item = item;
    }
    //如果有startTime的值，说明设置了失效时间
    if (item.startTime) {
      let date = new Date().getTime();
      //何时将值取出减去刚存入的时间，与item.expires比较，如果大于就是过期了，如果小于或等于就还没过期
      if (date - item.startTime > item.expires) {
        //缓存过期，清除缓存，返回false
        localStorage.removeItem(name);
        return false;
      } else {
        //缓存未过期，返回值
        return item.value;
      }
    } else {
      //如果没有设置失效时间，直接返回值
      return item;
    }
  },
  //移出缓存
  removeItem(name) {
    localStorage.removeItem(name);
  },
  //移出全部缓存
  clear() {
    localStorage.clear();
  },

  /* 获取缓存 */

  /**跳转到搜索页 */
  search: function () {
    wx.navigateTo({
      url: '../search/index'
    })
  },
  /**
   * 获取首页轮播图
   */
  getIndexPicture: function () {
    let that = this
    wx.request({
      url: app.globalData.url + `/advertise/index`,
      timeout: 10000,
      method: "GET",
      header: {
        'content-type': 'application/JSON'
      },
      success: function (res) {
        if (res.data.code === 0) {
          that.setData({
            indexPicture: res.data.data
          })
          // 这个要设置一个我过期时间, 暂时没想好怎么做
          // wx.setStorage({
          //   key:"indexData",
          //   data:res.data.data
          // })
        }
      },
    })
  },
  /**
   * 获取首页数据
   */
  getIndexData: function () {
    let that = this
    wx.request({
      url: app.globalData.url + `/index/index`,
      timeout: 10000,
      method: "GET",
      header: {
        'content-type': 'application/JSON'
      },
      success: function (res) {
        if (res.data.code === 0) {
          that.setData({
            indexData: res.data.data
          })
          // 设置一个过期时间,
          let data = {
            indexData: res.data.data,
            expires: 3600, // 单位 秒
            startTime: Date.parse(new Date())/1000 //记录何时将值存入缓存，秒级
          }
          wx.setStorage({
            key: "indexData",
            data: data
          })
        }
      },
      complete: function () {
        wx.hideNavigationBarLoading(); //完成停止加载图标
        wx.stopPullDownRefresh();
      }
    })
  },
  setIndexData: function () {
    // console.log(app.globalData.meetingUrl)
    let that = this
    try {
      var data = wx.getStorageSync('indexData')
      if (data) {
        // 判断过期时间
        let expires = data.expires
        let startTime = data.startTime
        let notTime = Date.parse(new Date())/1000

        if (expires + startTime < notTime) {
          that.getIndexData()
        } else {
          that.setData({
            indexData: data.indexData
          })
        }
      } else {
        that.getIndexData()
      }
    } catch (e) {
      console.log(e)
    }
  },
  /**
   * 页面的初始数据
   */
  data: {
    toView: 'green',
    hyjjData: {},
    indexData: {},
    indexPicture: [],
    banner_url: [
      'http://www.ecorr.org/images/2018-6-23.jpg',
      'http://www.ecorr.org/images/学会网banner图3.jpg',
      'http://www.ecorr.org/images/zhuanjia1.jpg',
      '/images/default_pic.jpg',
      '/images/default_pic.jpg',
      '/images/default_pic.jpg',
      '/images/default_pic.jpg'
    ],
    open: false,
    indicatorDots: true, //是否显示面板指示点
    autoplay: true, //是否开启自动切换
    interval: 3000, //自动切换时间间隔
    duration: 500 //滑动动画时长
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.setIndexData()
    this.getIndexPicture()
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {
    // 刷新缓存
    this.getIndexData()
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})